Separating a foreground layer from video in real time may be useful in many applications such as live background substitution, pan/tilt/zoom, object insertion and the like in teleconferencing. Separating a foreground layer in real time demands layer separation to near Computer Graphics quality, including α-channel determination as in video-matting, but with computational efficiency sufficient to attain live streaming speed.